package sg.edu.nus.iss.vmcs.service;

import sg.edu.nus.iss.vmcs.customer.CustomerPanel;

public interface ITransactionDisplayService {
	/**
	 * Set the customer panel
	 * @param custPanel
	 */
	public void setCustPanel(CustomerPanel custPanel);
	/**
	 * Initiate the customer panel to start the coin receiver
	 */
	public void startCoinReceiver();
	/**
	 * Set the coin input box status
	 */
	public void setCoinInputBox(boolean active);
	/**
	 * Stop receive coin
	 */
	public void stopReceiveCoin();
	/**
	 * On received coin failed
	 */
	public void onReceivedCoinFail();
	/**
	 * On received coin success
	 */
	public void onReceivedCoinSuccess(int insertedCoin);
	/**
	 * Update the UI for refnding of cash
	 * @param sertedCoin
	 */
	public void refundCash(int sertedCoin);
	/**
	 * Set the total money inserted
	 * @param money
	 */
	public void setTotalMoneyInserted(int money);
	/**
	 * Display the customer panel
	 */
	public void displayCustomerPanel();
	public void setCustomerPanelTerminateButton(boolean activate);
	/**
	 * Set the customer panel change label
	 * @param change
	 */
	public void setChange(int change);
	/**
	 * Reset the change
	 */
	public void resetChange();
	/**
	 * Close down the customer panel
	 */
	public void closeDownCustPanel();
	/**
	 * Terminate the transaction service for the customer panel
	 */
	public void terminateTransactionServiceForCustomerPanel();
	/**
	 * Display the change status
	 * @param status
	 */
	public void displayChangeStatus(boolean status);

	/**
	 * Reset the can for the customer panel
	 */
	public void resetCan();
	/**
	 * Check if the customer panel is null
	 * @return
	 */
	public boolean isCustomerPanelTerminated();
	/**
	 * Service to update the can label located at the customer panel
	 */
	public void updateCanLabel(String drinkName);
	/**
	 * Update the drink selection box
	 */
	public void update(int brand, int quantity, int price, String name);

	/**
	 * Set the drink selection box state
	 * @param index
	 * @param active
	 */
	public void setDrinkSelectionBoxState(int index, boolean active);
	/**
	 * Set the item state for the drink selection box
	 * @param index
	 * @param active
	 */
	public void setItemState(int index, boolean active);
}
